Copyright (c) 1995 Apple Users' Group, Sydney
Republished from Applecations, a publication of the Apple Users' Group, Sydney, Australia.
Source: Internet comp.sys.apple2
Q: Is it possible to network two Apple IIgs' without having a Mac act as a fileserver?
A: Yes, but not if you want to share files between them. Two IIgs's on a
network without a Macintosh can only share printers. You could also write
your own software to communicate between the computers over the network. In order to share files you need a Macintosh running System 7 or AppleShare.
Q: I have a 4MB CVTech ram card with the 1MB Apple ram card piggy backed. I also use the Apple High Speed SCSI. If I enable the DMA on the SCSI card ...well.. things don't work well. Is there something I can do about this short of pulling the Apple card? And if all I can do is pull the Apple card is it worth the DMA to go with out the extra meg of ram? Could someone explain to me just what the problem is?
A: DMA is the problem. Traditionally, you can only use 4MB for DMA, because the DMA bank latch is only valid for the lower 4MB of expansion RAM (so, really, it is 4.25MB you can use in a ROM1, and 5.125MB in a ROM3). There are two ways around this for a DMA-using card:
1) Know about the limit and don't DMA into the upper 4MB, DMA into a buffer in the lower 4MB, then copy, or use plain PIO for the upper 4MB
2) Use an undocumented RDY feature to halt the CPU in such a way that the card can "play CPU" and put the full address on the bus, then write the data. This trick doesn't work with a TransWarp GS (does work with a ZIP), and the only card that uses it so far is the RamFAST SCSI.
Q: I have a 4MB CVTech card with a 1MB Apple card piggy-backed on, in my ROM 01 GS, giving me a total of 5.25Mb. I'm running a "stock" GS, with GS/OS 6.0.1 and a 20MB Vulcan. GS/OS seems to be recognizing all 5.25Mb. Software works fine. In fact, my GS runs for weeks without being shut down or crashing. So just what is the problem with running more than 4Mb on a GS?
A: Your Vulcan doesn't do DMA. Even if you were to put in a TurboIDE (which does DMA) to speed up your vulcan, you wouldn't have a problem, because the TurboIDE knows about the 4MB limit and bypasses it by method 1, above. The Apple High Speed SCSI card causes a problem because it doesn't take the traditional 4MB limit into account.
Q: I have a Zip GS and it does DMA. Does it not do DMA above 4MB? Will it try to DMA above 4MB if the RAM Card can do DMA above 4MB
A: No IIgs RAM card can be DMA compatible beyond 4MB. This is a limitation of the RAM card slot: there are only two "row select" pins, allowing four rows of 1MB to be selected.
Cards that support more than 4MB of RAM do so by picking the bank address off the data bus during the first half of the clock cycle (this is when and where the CPU outputs the bank number). This allows up to 8MB to be supported for CPU accesses, but it doesn't work for DMA accesses. The problem with DMA is that it has to work within the confines of the original Apple II slot bus. It is not possible for a card to provide a bank address when doing a standard DMA access.
The IIgs provides a DMA bank register, which is used to provide the bank address for all DMA accesses (this prevents the use of more than one DMA device at a time, unless they all perform DMA to the same bank). The DMA bank register is NOT output on the data bus in the way that the CPU outputs the bank, so a RAM card that is trying to read the bank address will get garbage during a DMA cycle, causing the wrong part of memory to be accessed. The two row select signals are valid, so any card which supports no more than 4MB will work fine with DMA.
Many cards that support more than 4MB will work fine provided they only have 4MB installed (e.g. the OctoRAM, which only uses one bit of the bank address on the data bus, and then only if more than four rows of RAM chips are installed).
Cards with more than 4MB are a bit dubious. They still have to read at least one bit of the bank address from the data bus, so they must be relying on this bit being read as zero (reliably) during a DMA access to the first 4MB. It is definitely impossible to do DMA past this 4MB limit.
The RamFast is an exception to these rules. It uses a special technique to perform DMA: it uses the RDY signal to disconnect the CPU from all the busses, then generates a fake CPU access (including bank address) instead of doing a DMA cycle. This is handled by the RAM card exactly like a CPU access, so there is no DMA compatibility problem. As noted elsewhere, this technique doesn't work with a TransWarp GS, but it does work with a ZIP.
Regarding the Apple High Speed SCSI card: I think I've read somewhere that it knows about the 4MB DMA limit, and doesn't attempt to do DMA past this point. I don't know whether this applies to the firmware on the card - it might only be a feature of the GS/OS SCSI Manager. This should allow the Apple High Speed SCSI card to work with DMA enabled with most RAM cards that support more than 4MB.
Getting back to the CVTech RAM card again: this card is particularly unusual, because it supports mixed sizes of RAM chips. Most IIgs RAM cards require a fixed row size (256KB or 1MB). The CVTech card must decode the multiplexed RAM address and row address to produce an internal address, then remap that as required. Here are my current theories about this card:
- most CVTech RAM cards will be DMA compatible to RAM installed on the card itself, up to 4MB.
- if the CVTech card has 4MB installed, a piggyback card may be used, and DMA will only be performed into the first 4MB (provided the DMA device is aware of this limit; if not, DMA must be disabled).
- if the CVTech card has less than 4MB installed and a piggyback card with 256KB rows (e.g. Apple's 1MB card), it will not be DMA compatible.
- if the CVTech card has less than 4MB installed and a piggyback card with 1MB rows, it _might_ be DMA compatible.
Permission is hereby granted for non-profit user groups to republish this content. PLEASE CREDIT THE AUTHOR AND THE SOURCE: Applecations, publication of the Apple Users' Group, Sydney, Australia